' ****** START INCLUDE Blitkrieg Stratagem Icons ******
BigGun:
DATA "BIG GUNS"
DATA "...............................................................X"
DATA "....................X......XXX....XXX....XXXX...XXXX....XXX....."
DATA "......XX.....XXX......XX.....XXX.....XXX.XXXXXXX................"
DATA "XX......X.XXX....XXXXX...XXXXX...XXXXX..X.XXX..................."
CounterAttack:
DATA "COUNTERATTACK"
DATA ".......................X.......X.....X.X....XX.X...XXX.X..XXXX.X"
DATA "........................X.......XX......XXX.....XXXX....XXXXX..."
DATA ".XXXXX.X..XXXX.X...XXX.X....XX.X.....X.X.......X.......X........"
DATA "XXXXXX..XXXXX...XXXX....XXX.....XX......X......................."
EconomicWarfare:
DATA "ECONOMIC WARFARE"
DATA "..............XX.........XX.XX.....XX......XX......XX..X...XX..."
DATA ".........XX.....XX......XX......XX......XX.X....XX..X...X...X..."
DATA "..XXX......X...X......XX.....XXX.....X.X....XXXX....XXXX........"
DATA "....X.....X.X....XX.X...XXXXXX..X.XX.X..XXXXXX..XXXXXX.........."
ForTheGlory:
DATA "FOR THE GLORY"
DATA "......................XX...XXXXX...XXXXX...XXXXX...XXXXX...XXXXX"
DATA "................XX......XXXXX...XXXXX...XXXXX...XXXXX...XXXXX..."
DATA "...XXXXX....XXXX....XXXX.....XXX......XX.......X................"
DATA "XXXXX...XXXX....XXXX....XXX.....XX......X......................."
RapidDeployment:
DATA "RAPID DEPLOYMENT"
DATA ".............XXX......XX......X.......X.......X.......X.......X."
DATA "........XXXXX...XXXXXX..XXXXX.X..XXX..X...X...X..X.X..X.X...X.X."
DATA ".............XX....XXXX.....XXX....X.X....X.X......X............"
DATA ".....XX.XXXXXXX.......X........................................."
ResearchAndDevelopment:
DATA "RESEARCH & DEVELOPMENT"
DATA ".........X.XXXX...XXXXXX.XXX..XX.XX....X.XX....X.XXX..XX..XXXXXX"
DATA "........X...............X.......X.......X.......X..............."
DATA ".X.XXXX...........X...X....XXX.....X.X.....XXX....X...X........."
DATA "X.XXX.X..XXXXX..XX...XX.XX...XX.XX...XX..XXXXX..X.XXX.X........."
Secure:
DATA "SECURE"
DATA ".........X...XXX..X.X......X......X.X.XX.X...X...X..X.X..X..X..X"
DATA "........XXX...X....X.X......X...XX.X.X....X...X..X.X..X.X..X..X."
DATA ".X..X..X.X..X.X..X...X....X.X.XX...X......X.X....X...XXX........"
DATA "X..X..X..X.X..X...X...X.XX.X.X......X......X.X..XXX...X........."
SteamRoll:
DATA "STEAMROLL"
DATA "......X.......XX......XX...XXXXX..XXXXXX.XXXXXXX.XXXX.XX.XXX..XX"
DATA "................X.......XX......XXX.....XX......X...XXX.....XXX."
DATA ".XXX..X..XXX.....XXXX....XXXXXXX..XXXXXX...XXXXX................"
DATA "....XXX.....XXX....XXXX.XXXXXXX.XXXXXX..XXXXX..................."
' ****** END INCLUDE Blitkrieg Stratagem Icons ******
' Program by Charlie Veniot
' for solo players of Paulo Mori's
' Blitzkrieg! World War Two In 20 Minutes
'
' This program randomly chooses a strategem
' for the A.I. Bot player's next turn.
'
' Each turn, the Bot will use a random
' 1 out of 8 available stratagems. However:
' On the Bot's turn, the last stratagem used
' is not available for the current turn.
' i.e. a specific stratagem cannot be used in
' back-to-back turns. UNLESS this turn's
' stratagem = 8 (Repeat Last Stratagem)
'
' For the A.I. Bot's first turn, stratagem "8"
' (Steamroll = repeat last stratagem)
' is not available
_TITLE "BSC"
CONST stratagem$(1 TO 8) = {"BigGun","CounterAttack","EconomicWarfare", "ForTheGlory", _
"RapidDeployment","ResearchAndDevelopment","Secure","SteamRoll"}
DIM stratagemCount%( 1 TO 8 )
VAR allStratagems$ = "12345678"
VAR lastStratagem$ = "8"
VAR remainingStratagems$ = REPLACE$( allStratagems$, lastStratagem$, "" )
SUB PrintStratagem( id%, row%, col%, tfTitle%, tfEnabled% )
DIM holdBg% = _BACKGROUND
DIM t$, d1$, d2$, d3$, d4$
RESTORE (stratagem$(id%))
READ t$, d1$, d2$, d3$, d4$
LETCHR$(1, d1$) : LETCHR$(2, d2$) : LETCHR$(3, d3$) : LETCHR$(4, d4$)
LOCATE row%, col%
COLOR , IFF( tfEnabled%, 60, 56 )
PRINT CHR$(1) + CHR$(2);
LOCATE row% + 1, col%
PRINT CHR$(3) + CHR$(4);
COLOR , holdBg%
IF tfTitle% THEN LOCATE row% + 1, col% + 3 : PRINT t$;
END SUB
SCREEN _NEWIMAGE(392,176,14)
PRINT
PRINT REPLACE$(" -−-−-−-−-Blitzkrieg Stratagem Chooser", "-", " ")
PRINT REPLACE$(" -−-−-−-−-−-−-−-by Charlie Veniot", "-", " ")
PRINT
PRINT REPLACE$(" -−-−-−-A helper program for solo play of", "-", " ")
PRINT REPLACE$(" -−-−Blitzkrieg! World War Two in 20 Minutes", "-", " ")
LINE (2,2) TO (XMAX,56), ,B
LINE (5,4) TO (XMAX-2,54), ,B
PRINT
PRINT
PRINT
PRINT " This program will randomly choose a stratagem"
PRINT " from the available pool of stratagems, for the"
PRINT " A.I. Bot's next turn."
PRINT
PRINT " A stratagem is selected immediately when this
PRINT " program starts. Click/touch the screen to "
PRINT " generate the stratagem for the A.I. Bot's next"
PRINT " turn."
PRINT
PRINT " The program keeps a count of chosen stratagems."
PRINT
COLOR 62
PRINT " Click/Touch the screen to continue."
SLEEP
SCREEN _NEWIMAGE(376,144,14)
COLOR 63
PRINT
PRINT " About the game"
PRINT
PRINT " BLITKRIEG!"
PRINT " World War Two in 20 Minutes"
PRINT
PRINT " Designer: Paolo Mori"
PRINT
PRINT " Solo Designers: Nick Shaw, David Turczi"
PRINT
PRINT " Artists: Alan D'Amico, Paolo Mori, Paul Sizer"
PRINT
PRINT " Publishers: PSC Games, Banana Games,"
PRINT " Giochix.it, Maldito Games,"
PRINT " Matagot, Schwerkraft-Verlag"
PRINT
COLOR 62
PRINT " Click/Touch the screen to start the program."
SLEEP
SCREEN _NEWIMAGE(252,235,14)
LoopStart:
PRINT
newStratagem$ = MID$( remainingStratagems$, INT( RND * 7 ) + 1, 1 )
COLOR 7
PRINT " Last Turn: Played Stratagem " + lastStratagem$
PRINT
CALL PrintStratagem( (lastStratagem$), CSRLIN, 6, TRUE, FALSE )
PRINT : PRINT
PRINT " This Turn: Drew Stratagem " + newStratagem$
PRINT
CALL PrintStratagem( (newStratagem$), CSRLIN, 6, TRUE, FALSE )
PRINT : PRINT : PRINT
COLOR 63
PRINT " This Turn: " + IFF( newStratagem$ = "8", "REPLAY Stratagem " + lastStratagem$, "Play Stratagem " + newStratagem$ )
LET stratagemCount%(newStratagem$) = stratagemCount%(newStratagem$) + 1
IF newStratagem$ = "8" THEN LET stratagemCount%(lastStratagem$) = stratagemCount%(lastStratagem$) + 1
PRINT
CALL PrintStratagem( IFF( newStratagem$ = "8", lastStratagem$, newStratagem$ ), CSRLIN, 6, TRUE, TRUE )
PRINT : PRINT : PRINT
LINE (0,87) TO (XMAX,136), ,B
LINE (2,89) TO (XMAX-2,134), ,B
remainingStratagems$ = REPLACE$( allStratagems$, newStratagem$, "" )
COLOR 7
PRINT " Available Next Turn: " + remainingStratagems$
PRINT
row% = CSRLIN
col% = 6
FOR i% = 1 TO 8
thisStrategem$ = MID$(allStratagems$,i%,1)
COLOR IFF( INSTR( remainingStratagems$, thisStrategem$ ) = 0, 6,54)
CALL PrintStratagem( [thisStrategem$], [row%], [col%], FALSE, FALSE )
COLOR 54
LOCATE row% + 3, col% : PRINT RIGHT$(" " + stratagemCount%(i%),2);
col% = col% + 3
NEXT i%
COLOR 7
LOCATE row% + 3, 1
PRINT " Cnt:";
PRINT : PRINT : PRINT
COLOR 62
PRINT " Click/Touch the screen"
PRINT " for the A.I. Bot's next turn."
lastStratagem$ = newStratagem$
SLEEP : IF _MOUSEBUTTON THEN WHILE _MOUSEBUTTON : WEND
CLS
GOTO LoopStart: